b82e3a75e295a32886abbebda16d3ca24ed113de,src/main/java/org/icij/sql/concurrent/MySQLConcurrentMapAdapter.java,MySQLConcurrentMapAdapter,remove,#Connection#Object#Object#,146
Before Change
try (final PreparedStatement q = c.prepareStatement("DELETE FROM " + table + " WHERE " +
codec.getKeyName() + "=?;")) {
q.setString(1, codec.encodeKey(key));
result = q.executeUpdate();
} catch (SQLException e) {
c.rollback();
After Change
throw e;
}
final Map<String, Object> values = codec.encodeKey(key);
values.putAll(codec.encodeValue(value));
final Set<String> keySet = values.keySet();
try (final PreparedStatement q = c.prepareStatement("DELETE FROM " + table + " WHERE " +
String.join(" AND ", keySet.stream().map(k -> k + " = ?").toArray(String[]::new)) + ";")) {
int i = 1;
for (String k: keySet) {
q.setObject(i++, values.get(k));
}
result = q.executeUpdate();